﻿using BLevy.Entidad;
using BLevy.Negocio;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BLevy.UI
{
    public partial class frmAdherenteBaja : Form
    {
        private int adherente_id { get; set; }

        public frmAdherenteBaja()
        {
            InitializeComponent();
        }

        public frmAdherenteBaja(int id)
        {
            adherente_id = id;
            InitializeComponent();
        }


        private void IniciarControles()
        {
            txtNroSocio.Enabled = false;
            txtAdherenteApellido.Enabled = false;
            txtAdherenteDocumento.Enabled = false;
            txtAdherenteNombres.Enabled = false;
            txtSocioApellido.Enabled = false;
            txtSocioNombres.Enabled = false;

            this.ActiveControl = txtMotivo;
        }

        private void frmAdherenteBaja_Load(object sender, EventArgs e)
        {
            IniciarControles();

            try
            {
                Adherente adherente = GetById(adherente_id);

                txtAdherenteApellido.Text = adherente.apellido;
                txtAdherenteDocumento.Text = adherente.documento;
                txtAdherenteNombres.Text = adherente.nombres;

                Socio socio = GetSocioById(adherente.socio_id);

                txtSocioApellido.Text = socio.apellido;
                txtSocioNombres.Text = socio.nombres;
                txtNroSocio.Text = String.Format("{0:00000000}", socio.id);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private Adherente GetById(int id)
        {
            Adherente adherente = null;
            try
            {
                adherente = Adherentes.FindById(id);

            }
            catch (Exception e)
            {
                MessageBox.Show("Error : " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return adherente;
        }

        private Socio GetSocioById(int socio_id)
        {
            Socio socio = null;
            try
            {
                socio = Negocio.Socios.FindById(socio_id);
            }
            catch (Exception e)
            {
                MessageBox.Show("Error : " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return socio;
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.DialogResult = System.Windows.Forms.DialogResult.No;
            this.Close();
        }

        private Boolean ValidarForm()
        {
            bool resultado = true;
            error.Clear();

            if (string.IsNullOrEmpty(txtMotivo.Text))
            {
                resultado = false;
                error.SetError(txtMotivo, "Debe completar el campo Motivo.");
                return resultado;
            }

            return resultado;
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (ValidarForm() == true)
            {
                try
                {
                    AdherenteBaja baja = new AdherenteBaja();
                    baja.fecha = dtpFecha.Value;
                    baja.adherente_id = adherente_id;
                    baja.motivo = txtMotivo.Text;
                    baja.operacion = "B";
                    baja.tipo_baja = "M";

                    int resultado = Adherentes.AdherenteBaja(adherente_id, baja);
                    if (resultado > 0)
                    {
                        MessageBox.Show("Los datos se registraron correctamente.", "Información", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.DialogResult = System.Windows.Forms.DialogResult.Yes;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.Show("Ocurrio un error al registrar los datos. Intente Nuevamente.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error : " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

            }
        }
    }
}
